package org.agpsoft.datareceiverinfrastructure.facade;

import org.agpsoft.datareceiverinfrastructure.common.RawData;
import org.agpsoft.datareceiverinfrastructure.exception.DataReceiverException;
import org.agpsoft.datareceiverinfrastructure.exception.DataReceiverNULLObjectException;
import org.agpsoft.datareceiverinfrastructure.exception.DataReceiverProcessException;

/**
 * Processor interface that aims on processing data
 * Process operation may include decoding data ,and transmitting it. 
 * @author Ali Gokalp Peker
 */
public interface IDataReceiverProcessor {
	/**
	 * Processes data ,[decoding data and sending results to data transmitter]
	 * @param data Data to process
	 * @throws DataReceiverProcessException
	 * @throws DataReceiverNULLObjectException
	 */
	public void processData( RawData data ) throws DataReceiverException; 
}
